草庐IT

c++ - GLUT 和 C++ 类

全部标签

c++ - 使用脚本在编译时生成代码

理想情况下,我希望能够将(非常重复的)C/C++代码添加到我的实际代码中,但在编译时,代码将来自python脚本的标准输出,就像使用宏。例如,假设我想要拥有依赖于给定类的公共(public)属性的函数,能够在我的C++代码中编写以下内容将是一件幸事:generate_boring_functions(FooBarClass,"FooBarClass.cpp")使用传统方法是否可行?还是我必须破解Makefile和临时源文件?谢谢。 最佳答案 您很可能需要稍微调整一下Makefile。编写一个(Python)脚本来读取每个源文件作为额

c++ - 为什么在 OpenGL 中显式管理矩阵更好?

最近我一直在用OpenGL搞乱,我遇到了允许OpenGL管理View/模型/投影矩阵或自己管理它们之间的分歧,无论是使用您自己的矩阵实现还是诸如此类的库作为GLM。我已经看到很多大型项目都有自己的相机管理(即管理自己的平移、旋转等)。我明白为什么它有助于确保您完全控制系统,但除此之外,它似乎需要做很多工作才能获得边际yield。为什么自己管理比使用内置的OpenGL函数更好?显然这是在着色器管道的上下文中,而不是固定函数默认值。(这适用于任何3D库)。 最佳答案 (顺便说一句,OpenGLES2没有转换管理工具,因此在某些情况下您别

c++ - 在 Windows 上获取 C\C++ 中的所有环境变量

C\C++中main函数的签名可以包含3个参数:main(intargc,char*argv[],char*envp[])第三个是环境变量。我正在VS10下编译一个库,因此我没有main()。如何获得与char*envp[]中类型完全相同的环境变量?我宁愿不使用.NET来减少依赖性,也许有一天会开放可移植性。 最佳答案 GetEnvironmentStrings返回一个(只读!)指向进程环境block开始的指针。该block是一个连续的C风格字符串,包含以null结尾的key=value对。该block由一个额外的空终止符结束。为了

c++ - 如何优化矩阵乘法 (matmul) 代码以在单个处理器内核上快速运行

我正在研究并行编程概念并尝试优化单核上的矩阵乘法示例。到目前为止,我想出的最快的实现如下:/*Thisroutineperformsadgemmoperation*C:=C+A*B*whereA,B,andCarelda-by-ldamatricesstoredincolumn-majorformat.*Onexit,AandBmaintaintheirinputvalues.*/voidsquare_dgemm(intn,double*A,double*B,double*C){/*ForeachrowiofA*/for(inti=0;i结果如下。如何减少循环并提高性能login4.s

c++ - OpenGL/glut/stdc++ 构建错误

我正在使用Ubuntu并尝试使用synaptic来安装其中包含“GLUT”一词的所有内容以及SDL和opengl。但仍然是一个简单的程序无法编译。它显示了这个:opengl1.cpp:(.text+0xe):undefinedreferenceto`glClear'opengl1.cpp:(.text+0x1a):undefinedreferenceto`glBegin'opengl1.cpp:(.text+0x2e):undefinedreferenceto`glVertex2i'opengl1.cpp:(.text+0x33):undefinedreferenceto`glEnd'

c++ - 哪些用例需要 #define 而不使用标记字符串?

之前在学习C的时候遇到过#define预处理器指令,后来在看的一些代码中也遇到过。但是除了用它来确定常量的替换和定义宏之外,我还没有真正理解它在没有“主体”或标记字符串的情况下使用的特殊情况。以这一行为例:#defineOCSTR(X)就是这样!这个或更好的用途是什么,什么时候需要使用#define? 最佳答案 这用于两种情况。第一个也是最常见的涉及条件编译:#ifndefXYZ#defineXYZ//...#endif你肯定自己用过它来包含守卫,但它也可以是用于诸如系统依赖之类的事情:#ifdefWIN32//Windowsspe

C++ 结构——毫无意义?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhatarethedifferencesbetweenstructandclassinC++我只是想弄清楚在C++中使用“C结构”是否本质上是无用的。使用它们(而不是简单地创建另一个类)你有什么收获吗?在C中,结构的意义很明显,分组数据的简单连续分配和访问所述数据的好方法,在C++中,我觉得这个角色变得有点模糊。鉴于您可以拥有作为结构成员、实例变量和可见性标签的函数,我在C++中看到的结构和类之间的唯一真正区别是结构成员默认为公共(public),而类成员默认为私有(private)。在我看来,它们实际上都

c++ - 为什么可以声明同名的结构和非结构?

显然,ForreasonsthatreachintotheprehistoryofC,itispossibletodeclareastructandanon-structwiththesamenameinthesamescope.-(BjarneStroustrup-TheC++ProgrammingLanguage.4thEdition)例如:structAmbig{};//thestructmustbereferredtowiththeprefixstructvoidAmbig(structAmbig*buf){}我只是好奇最初的原因是什么?没有理解,这似乎是一个糟糕的语言设计的例

c++ - 并行计算——混淆了输出?

我正在尝试学习并行计算的基础知识,但我在计算机上遇到了问题。看看下面我的代码。基本上,我想打印出“HelloWorld!”这一行。对于我的计算机的每个核心。我的电脑有四个核心,所以它应该打印四次该行。如果我要使用注释掉的“cout”行而不是“printf”行,输出将全部困惑。这是因为'\n'转义命令与“HelloWorld!”分开执行,所以换行输出会随机出现。'printf'行是解决此问题的方法,因为该行是一次性执行的(而不是像'cout'行那样拆分成多个部分)。但是,当我使用“printf”时,我的输出仍然像使用“cout”一样困惑。我不知道为什么会这样。我在另一台计算机上尝试了完全

c++ - 使用 "template"编写 C 或 C++ 库

(1)。在使用C++模板时,编译器(如g++)不会直接编译模板定义(只能​​在头文件中,不能在源文件中),而是根据模板定义为它的每个实例生成代码,然后为它的实例编译生成的代码?(2)。如果我想编写一个提供模板类和模板函数的C++库,是否无法将库编译为共享文件(.so,.a),因为它们的实例化不会出现在库代码中的任何位置,而只会出现在用户程序?如果是,是否意味着模板库只是源代码文件而不是预编译文件?C++标准模板库(STL)是如何实现的?其源代码是预编译的还是与用户程序一起编译的?(3)。在C中,如何编写一个库来提供像C++中的模板函数一样的函数?重载是一个好的解决方案吗?如果我必须为不